package com.api.mapper;

import java.util.List;

import com.api.domain.ApiAccount;
import org.apache.ibatis.annotations.Param;

/**
 * 用户账户Mapper接口
 *
 * @author Renbowen
 * @date 2020-09-25
 */
public interface ApiAccountMapper {
    /**
     * 查询用户账户
     *
     * @param accountId 用户账户ID
     * @return 用户账户
     */
    public ApiAccount selectApiAccountById(Long accountId);

    /**
     * 查询用户账户列表
     *
     * @param apiAccount 用户账户
     * @return 用户账户集合
     */
    public List<ApiAccount> selectApiAccountList(ApiAccount apiAccount);

    /**
     * 新增用户账户
     *
     * @param apiAccount 用户账户
     * @return 结果
     */
    public int insertApiAccount(ApiAccount apiAccount);

    /**
     * 修改用户账户
     *
     * @param apiAccount 用户账户
     * @return 结果
     */
    public int updateApiAccount(ApiAccount apiAccount);

    /**
     * 删除用户账户
     *
     * @param accountId 用户账户ID
     * @return 结果
     */
    public int deleteApiAccountById(Long accountId);

    /**
     * 批量删除用户账户
     *
     * @param accountIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteApiAccountByIds(String[] accountIds);

    /**
     * 根据openId获取用户信息
     *
     * @param openid
     * @return
     */
    ApiAccount selectApiAccountByWxOpenId(@Param("openid") String openid);

    /**
     * 我邀请的人数
     *
     * @param accountId
     * @return
     */
    Integer countMyInventNum(@Param("accountId") Long accountId);

    /**
     * 我的一级邀请好友列表
     *
     * @param accountId
     * @param conditionDate
     * @return
     */
    List<ApiAccount> selectApiAccountOneList(@Param("accountId") Long accountId, @Param("conditionDate") String conditionDate);

    /**
     * 我的二级邀请好友列表
     *
     * @param accountId
     * @param conditionDate
     * @return
     */
    List<ApiAccount> selectApiAccountTwoList(@Param("accountId") Long accountId, @Param("conditionDate") String conditionDate);
}
